/*! WOW wow.js - v1.3.0 - 2016-10-04
 * https://wowjs.uk
 * Copyright (c) 2016 Thomas Grainger; Licensed MIT */ !(function (a, b) {
    if ('function' == typeof define && define.amd) define(['module', 'exports'], b);
    else if ('undefined' != typeof exports) b(module, exports);
    else {
        var c = { exports: {} };
        b(c, c.exports), (a.WOW = c.exports);
    }
})(this, function (a, b) {
    'use strict';
    function c(a, b) {
        if (!(a instanceof b)) throw new TypeError('Cannot call a class as a function');
    }
    function d(a, b) {
        return b.indexOf(a) >= 0;
    }
    function e(a, b) {
        for (var c in b)
            if (null == a[c]) {
                var d = b[c];
                a[c] = d;
            }
        return a;
    }
    function f(a) {
        return /Android|webOS|iPhone|iPad|iPod|BlackBerry|IEMobile|Opera Mini/i.test(a);
    }
    function g(a) {
        var b = arguments.length <= 1 || void 0 === arguments[1] ? !1 : arguments[1],
            c = arguments.length <= 2 || void 0 === arguments[2] ? !1 : arguments[2],
            d = arguments.length <= 3 || void 0 === arguments[3] ? null : arguments[3],
            e = void 0;
        return (
            null != document.createEvent
                ? ((e = document.createEvent('CustomEvent')), e.initCustomEvent(a, b, c, d))
                : null != document.createEventObject
                ? ((e = document.createEventObject()), (e.eventType = a))
                : (e.eventName = a),
            e
        );
    }
    function h(a, b) {
        null != a.dispatchEvent ? a.dispatchEvent(b) : b in (null != a) ? a[b]() : 'on' + b in (null != a) && a['on' + b]();
    }
    function i(a, b, c) {
        null != a.addEventListener ? a.addEventListener(b, c, !1) : null != a.attachEvent ? a.attachEvent('on' + b, c) : (a[b] = c);
    }
    function j(a, b, c) {
        null != a.removeEventListener ? a.removeEventListener(b, c, !1) : null != a.detachEvent ? a.detachEvent('on' + b, c) : delete a[b];
    }
    function k() {
        return 'innerHeight' in window ? window.innerHeight : document.documentElement.clientHeight;
    }
    Object.defineProperty(b, '__esModule', { value: !0 });
    var l,
        m,
        n = (function () {
            function a(a, b) {
                for (var c = 0; c < b.length; c++) {
                    var d = b[c];
                    (d.enumerable = d.enumerable || !1),
                        (d.configurable = !0),
                        'value' in d && (d.writable = !0),
                        Object.defineProperty(a, d.key, d);
                }
            }
            return function (b, c, d) {
                return c && a(b.prototype, c), d && a(b, d), b;
            };
        })(),
        o =
            window.WeakMap ||
            window.MozWeakMap ||
            (function () {
                function a() {
                    c(this, a), (this.keys = []), (this.values = []);
                }
                return (
                    n(a, [
                        {
                            key: 'get',
                            value: function (a) {
                                for (var b = 0; b < this.keys.length; b++) {
                                    var c = this.keys[b];
                                    if (c === a) return this.values[b];
                                }
                            }
                        },
                        {
                            key: 'set',
                            value: function (a, b) {
                                for (var c = 0; c < this.keys.length; c++) {
                                    var d = this.keys[c];
                                    if (d === a) return (this.values[c] = b), this;
                                }
                                return this.keys.push(a), this.values.push(b), this;
                            }
                        }
                    ]),
                    a
                );
            })(),
        p =
            window.MutationObserver ||
            window.WebkitMutationObserver ||
            window.MozMutationObserver ||
            ((m = l =
                (function () {
                    function a() {
                        c(this, a),
                            'undefined' != typeof console &&
                                null !== console &&
                                (console.warn('MutationObserver is not supported by your browser.'),
                                console.warn('WOW.js cannot detect dom mutations, please call .sync() after loading new content.'));
                    }
                    return n(a, [{ key: 'observe', value: function () {} }]), a;
                })()),
            (l.notSupported = !0),
            m),
        q =
            window.getComputedStyle ||
            function (a) {
                var b = /(\-([a-z]){1})/g;
                return {
                    getPropertyValue: function (c) {
                        'float' === c && (c = 'styleFloat'),
                            b.test(c) &&
                                c.replace(b, function (a, b) {
                                    return b.toUpperCase();
                                });
                        var d = a.currentStyle;
                        return (null != d ? d[c] : void 0) || null;
                    }
                };
            },
        r = (function () {
            function a() {
                var b = arguments.length <= 0 || void 0 === arguments[0] ? {} : arguments[0];
                c(this, a),
                    (this.defaults = {
                        boxClass: 'wow',
                        animateClass: 'animated',
                        offset: 0,
                        mobile: !0,
                        live: !0,
                        callback: null,
                        scrollContainer: null,
                        resetAnimation: !0
                    }),
                    (this.animate = (function () {
                        return 'requestAnimationFrame' in window
                            ? function (a) {
                                  return window.requestAnimationFrame(a);
                              }
                            : function (a) {
                                  return a();
                              };
                    })()),
                    (this.vendors = ['moz', 'webkit']),
                    (this.start = this.start.bind(this)),
                    (this.resetAnimation = this.resetAnimation.bind(this)),
                    (this.scrollHandler = this.scrollHandler.bind(this)),
                    (this.scrollCallback = this.scrollCallback.bind(this)),
                    (this.scrolled = !0),
                    (this.config = e(b, this.defaults)),
                    null != b.scrollContainer && (this.config.scrollContainer = document.querySelector(b.scrollContainer)),
                    (this.animationNameCache = new o()),
                    (this.wowEvent = g(this.config.boxClass));
            }
            return (
                n(a, [
                    {
                        key: 'init',
                        value: function () {
                            (this.element = window.document.documentElement),
                                d(document.readyState, ['interactive', 'complete'])
                                    ? this.start()
                                    : i(document, 'DOMContentLoaded', this.start),
                                (this.finished = []);
                        }
                    },
                    {
                        key: 'start',
                        value: function () {
                            var a = this;
                            if (
                                ((this.stopped = !1),
                                (this.boxes = [].slice.call(this.element.querySelectorAll('.' + this.config.boxClass))),
                                (this.all = this.boxes.slice(0)),
                                this.boxes.length)
                            )
                                if (this.disabled()) this.resetStyle();
                                else
                                    for (var b = 0; b < this.boxes.length; b++) {
                                        var c = this.boxes[b];
                                        this.applyStyle(c, !0);
                                    }
                            if (
                                (this.disabled() ||
                                    (i(this.config.scrollContainer || window, 'scroll', this.scrollHandler),
                                    i(window, 'resize', this.scrollHandler),
                                    (this.interval = setInterval(this.scrollCallback, 50))),
                                this.config.live)
                            ) {
                                var d = new p(function (b) {
                                    for (var c = 0; c < b.length; c++)
                                        for (var d = b[c], e = 0; e < d.addedNodes.length; e++) {
                                            var f = d.addedNodes[e];
                                            a.doSync(f);
                                        }
                                });
                                d.observe(document.body, { childList: !0, subtree: !0 });
                            }
                        }
                    },
                    {
                        key: 'stop',
                        value: function () {
                            (this.stopped = !0),
                                j(this.config.scrollContainer || window, 'scroll', this.scrollHandler),
                                j(window, 'resize', this.scrollHandler),
                                null != this.interval && clearInterval(this.interval);
                        }
                    },
                    {
                        key: 'sync',
                        value: function () {
                            p.notSupported && this.doSync(this.element);
                        }
                    },
                    {
                        key: 'doSync',
                        value: function (a) {
                            if ((('undefined' != typeof a && null !== a) || (a = this.element), 1 === a.nodeType)) {
                                a = a.parentNode || a;
                                for (var b = a.querySelectorAll('.' + this.config.boxClass), c = 0; c < b.length; c++) {
                                    var e = b[c];
                                    d(e, this.all) ||
                                        (this.boxes.push(e),
                                        this.all.push(e),
                                        this.stopped || this.disabled() ? this.resetStyle() : this.applyStyle(e, !0),
                                        (this.scrolled = !0));
                                }
                            }
                        }
                    },
                    {
                        key: 'show',
                        value: function (a) {
                            return (
                                this.applyStyle(a),
                                (a.className = a.className + ' ' + this.config.animateClass),
                                null != this.config.callback && this.config.callback(a),
                                h(a, this.wowEvent),
                                this.config.resetAnimation &&
                                    (i(a, 'animationend', this.resetAnimation),
                                    i(a, 'oanimationend', this.resetAnimation),
                                    i(a, 'webkitAnimationEnd', this.resetAnimation),
                                    i(a, 'MSAnimationEnd', this.resetAnimation)),
                                a
                            );
                        }
                    },
                    {
                        key: 'applyStyle',
                        value: function (a, b) {
                            var c = this,
                                d = a.getAttribute('data-wow-duration'),
                                e = a.getAttribute('data-wow-delay'),
                                f = a.getAttribute('data-wow-iteration');
                            return this.animate(function () {
                                return c.customStyle(a, b, d, e, f);
                            });
                        }
                    },
                    {
                        key: 'resetStyle',
                        value: function () {
                            for (var a = 0; a < this.boxes.length; a++) {
                                var b = this.boxes[a];
                                b.style.visibility = 'visible';
                            }
                        }
                    },
                    {
                        key: 'resetAnimation',
                        value: function (a) {
                            if (a.type.toLowerCase().indexOf('animationend') >= 0) {
                                var b = a.target || a.srcElement;
                                b.className = b.className.replace(this.config.animateClass, '').trim();
                            }
                        }
                    },
                    {
                        key: 'customStyle',
                        value: function (a, b, c, d, e) {
                            return (
                                b && this.cacheAnimationName(a),
                                (a.style.visibility = b ? 'hidden' : 'visible'),
                                c && this.vendorSet(a.style, { animationDuration: c }),
                                d && this.vendorSet(a.style, { animationDelay: d }),
                                e && this.vendorSet(a.style, { animationIterationCount: e }),
                                this.vendorSet(a.style, { animationName: b ? 'none' : this.cachedAnimationName(a) }),
                                a
                            );
                        }
                    },
                    {
                        key: 'vendorSet',
                        value: function (a, b) {
                            for (var c in b)
                                if (b.hasOwnProperty(c)) {
                                    var d = b[c];
                                    a['' + c] = d;
                                    for (var e = 0; e < this.vendors.length; e++) {
                                        var f = this.vendors[e];
                                        a['' + f + c.charAt(0).toUpperCase() + c.substr(1)] = d;
                                    }
                                }
                        }
                    },
                    {
                        key: 'vendorCSS',
                        value: function (a, b) {
                            for (var c = q(a), d = c.getPropertyCSSValue(b), e = 0; e < this.vendors.length; e++) {
                                var f = this.vendors[e];
                                d = d || c.getPropertyCSSValue('-' + f + '-' + b);
                            }
                            return d;
                        }
                    },
                    {
                        key: 'animationName',
                        value: function (a) {
                            var b = void 0;
                            try {
                                b = this.vendorCSS(a, 'animation-name').cssText;
                            } catch (c) {
                                b = q(a).getPropertyValue('animation-name');
                            }
                            return 'none' === b ? '' : b;
                        }
                    },
                    {
                        key: 'cacheAnimationName',
                        value: function (a) {
                            return this.animationNameCache.set(a, this.animationName(a));
                        }
                    },
                    {
                        key: 'cachedAnimationName',
                        value: function (a) {
                            return this.animationNameCache.get(a);
                        }
                    },
                    {
                        key: 'scrollHandler',
                        value: function () {
                            this.scrolled = !0;
                        }
                    },
                    {
                        key: 'scrollCallback',
                        value: function () {
                            if (this.scrolled) {
                                this.scrolled = !1;
                                for (var a = [], b = 0; b < this.boxes.length; b++) {
                                    var c = this.boxes[b];
                                    if (c) {
                                        if (this.isVisible(c)) {
                                            this.show(c);
                                            continue;
                                        }
                                        a.push(c);
                                    }
                                }
                                (this.boxes = a), this.boxes.length || this.config.live || this.stop();
                            }
                        }
                    },
                    {
                        key: 'offsetTop',
                        value: function (a) {
                            for (; void 0 === a.offsetTop; ) a = a.parentNode;
                            for (var b = a.offsetTop; a.offsetParent; ) (a = a.offsetParent), (b += a.offsetTop);
                            return b;
                        }
                    },
                    {
                        key: 'isVisible',
                        value: function (a) {
                            var b = a.getAttribute('data-wow-offset') || this.config.offset,
                                c = (this.config.scrollContainer && this.config.scrollContainer.scrollTop) || window.pageYOffset,
                                d = c + Math.min(this.element.clientHeight, k()) - b,
                                e = this.offsetTop(a),
                                f = e + a.clientHeight;
                            return d >= e && f >= c;
                        }
                    },
                    {
                        key: 'disabled',
                        value: function () {
                            return !this.config.mobile && f(navigator.userAgent);
                        }
                    }
                ]),
                a
            );
        })();
    (b['default'] = r), (a.exports = b['default']);
});
